﻿using Nantianmen.Domain.Models;
using Nantianmen.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Nantianmen.Core.Stores
{
    public interface IClusterStore
    {
        Task<bool> CheckDuplicateClusterIdAsync(string id, CancellationToken cancellationToken);
        Task<NantianmenResult> CreateAsync(Cluster cluster, CancellationToken cancellationToken);
        Task<Cluster?> FindClusterByIdAsync(string clusterId, CancellationToken cancellationToken);
        Task<List<Destination>> FindClusterDestinationsAsync(string clusterId, CancellationToken cancellationToken);
        Task<List<Cluster>> GetClustersAsync(CancellationToken cancellationToken);
        Task<NantianmenResult> RemoveAsync(Cluster cluster, CancellationToken cancellationToken);
        Task<NantianmenResult> UpdateAsync(Cluster cluster, CancellationToken cancellationToken);

    }
}
